#include "head.h"

void *threadMain(void *p){
    pool_t *pool = (pool_t *)p;

    while(1){

        int net_fd; 
        pthread_mutex_lock(&pool->lock);
        // 判断如果队列中, 没有net_fd, 陷入阻塞(条件变量)
        while(pool->queue.size <= 0 && pool->exitFlag  == 0){
            pthread_cond_wait(&pool->cond, &pool->lock);
            printf("son thread wait after \n");
        }

        if(pool->exitFlag == 1){
            // 退出标记位是退出状态, 主线程要求子线程退出
            // ....处理要处理的事情
            pthread_mutex_unlock(&pool->lock);

            pthread_exit(NULL);
        }

        net_fd = pool->queue.head->net_fd;

        deQueue(&pool->queue);
        pthread_mutex_unlock(&pool->lock);

        // 通过net_fd和客户端进行通信
        // 传文件
        sendFile(net_fd);

        close(net_fd);
    }

    return NULL;
}

